<?php

class Historico {

    private $idHistorico;
    private $idCliente;
    private $idLoja;
    private $idUsuario;
    private $dataInclusao;

    const NOME_MODULO = "Historico";

    public function getIdHistorico() {
        return $this->idHistorico;
    }

    public function setIdHistorico($idHistorico) {
        $this->idHistorico = $idHistorico;
    }

    public function getIdCliente() {
        return $this->idCliente;
    }

    public function setIdCliente($idCliente) {
        $this->idCliente = $idCliente;
    }

    public function getIdLoja() {
        return $this->idLoja;
    }

    public function setIdLoja($idLoja) {
        $this->idLoja = $idLoja;
    }

    public function getIdUsuario() {
        return $this->idUsuario;
    }

    public function setIdUsuario($idUsuario) {
        $this->idUsuario = $idUsuario;
    }

    public function getDataInclusao() {
        return $this->dataInclusao;
    }

    public function setDataInclusao($dataInclusao) {
        $this->dataInclusao = $dataInclusao;
    }

    public static function listarPorUsuario($idUsuario) {
        $conn = Connection::getConnection();
        $historicos = array();

        $rs = $conn->query("SELECT * FROM historico WHERE idUsuario = $idUsuario");
        while ($linha = $rs->fetch_assoc()) {
            $historicos[] = self::arrayParaHistorico($linha);
        }
        return $historicos;
    }

    public static function listarPorCliente($idCliente) {
        $conn = Connection::getConnection();
        $historicos = array();

        $rs = $conn->query("SELECT * FROM historico WHERE idCliente = $idCliente");
        while ($linha = $rs->fetch_assoc()) {
            $historicos[] = self::arrayParaHistorico($linha);
        }
        return $historicos;
    }

    public function inserir() {
        $dataInclusaoFormatoBanco = Util::dataViewParaBanco($this->dataInclusao);
        $conn = Connection::getConnection();
        $rs = $conn->prepare("INSERT INTO historico SET idHistorico = ?, idCliente = ?, idLoja = ?, idUsuario = ?,
                                    dt_inclusao = ?");
        $rs->bind_param("iiiis", $this->getIdHistorico(), $this->getIdCliente(), $this->getIdLoja(), $this->getIdUsuario(), $dataInclusaoFormatoBanco);
        $rs->execute();
        return $rs->insert_id;
    }
/*
    public function alterar() {
        $dataInclusaoFormatoBanco = Util::dataViewParaBanco($this->dataInclusao);
        $conn = Connection::getConnection();

        $rs = $conn->prepare("UPDATE produto SET idColecao = ?, nome = ?, preco = ?, dt_inclusao = ?, 
                                    codigo = ?, volume = ?, descricao = ?, uso = ?  WHERE idProduto = ?");
        $rs->bind_param("isdsidssi", $this->idColecao, $this->nome, $this->preco, $dataInclusaoFormatoBanco, $this->codigo, $this->volume, $this->descricao, $this->uso, $this->id);
        return $rs->execute();
    }
*/
    public function excluir($id) {
        $conn = Connection::getConnection();

        $rs = $conn->prepare("DELETE FROM historico  WHERE idHistorico= ?");
        $rs->bind_param("d", $id);

        return $rs->execute();
    }

    /**
     * Retorna um Historico
     * @param int id
     * @return Historico
     */
    public static function consultar($id) {
        $historico = null;
        $conn = Connection::getConnection();

        $rs = $conn->query("SELECT * FROM historico WHERE idHistorico = $id");

        $linha = $rs->fetch_assoc();
        //se foi encontrado o registro
        if ($linha) {
            $historico = self::arrayParaHistorico($linha);
        }
        return $historico;
    }

    /**
     * Tranforma a linha de uma consulta na tabela historico em um objeto Historico
     * @param type $linha linha de uma consulta da tabela historico
     */
    public static function arrayParaHistorico($linha) {
        $historico = new Historico();
        $historico->idHistorico = isset($linha["idHistorico"]) ? $linha["idHistorico"] : null;
        $historico->idCliente = isset($linha["idCliente"]) ? $linha["idCliente"] : null;
        $historico->idLoja = isset($linha["idLoja"]) ? $linha["idLoja"] : null;
        $historico->idUsuario = isset($linha["idUsuario"]) ? $linha["idUsuario"] : null;
        $historico->dataInclusao = isset($linha["dt_inclusao"]) ? $linha["dt_inclusao"] : null;
        return $historico;
    }

}

/* TODO testes, retirar isto daqui depois */
// require_once '../config.php';
//   var_dump(Produto::listar());
?>
